Restore NULL checks before calling kfree().
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Sat, 10 Sep 2005 20:14:50 +0000 (20:14 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Sat, 10 Sep 2005 20:14:50 +0000 (20:14 +0000)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c
linux-2.6-xen-sparse/drivers/xen/netback/loopback.c
linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c
linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c
linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c
linux-2.6-xen-sparse/drivers/xen/usbback/usbback.c
linux-2.6-xen-sparse/drivers/xen/usbfront/usbfront.c

index 5a96b54f03ffc2236c9f9ade09160542b4d6f773..08721249193f536ef1d2d6cf1bf33642f954c003 100644 (file)
@@ -48,7 +48,8 @@ static int blkback_remove(struct xenbus_device *dev)
        unregister_xenbus_watch(&be->backend_watch);
        if (be->blkif)
                blkif_put(be->blkif);
-       kfree(be->frontpath);
+       if (be->frontpath)
+               kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -254,7 +255,8 @@ static int blkback_probe(struct xenbus_device *dev,
  free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       kfree(frontend);
+       if (frontend)
+               kfree(frontend);
        kfree(be);
        return err;
 }
index ce90bea732e91ca75213396483afab8b11624905..16f76574009ade2039947c9b48e0474b0b3e9610 100644 (file)
@@ -608,7 +608,8 @@ static int talk_to_backend(struct xenbus_device *dev,
        }
 
  out:
-       kfree(backend);
+       if (backend)
+               kfree(backend);
        return err;
 
  abort_transaction:
index eeaaa0c283032e0503b1ebac50dd4ca0dfe25cad..06d07cacf1cacd731ac71963d4d821faf62b5f55 100644 (file)
@@ -52,7 +52,8 @@ static int blkback_remove(struct xenbus_device *dev)
        unregister_xenbus_watch(&be->backend_watch);
        if (be->blkif)
                blkif_put(be->blkif);
-       kfree(be->frontpath);
+       if (be->frontpath)
+               kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -199,7 +200,8 @@ static int blkback_probe(struct xenbus_device *dev,
  free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       kfree(frontend);
+       if (frontend)
+               kfree(frontend);
        kfree(be);
        return err;
 }
index 09e29ae5dc54fcd8631f6a103c2d28af32e527b9..9845ba32cc644dcf5ef3ddfa9ed5fb86da3b2901 100644 (file)
@@ -160,8 +160,10 @@ static int __init make_loopback(int i)
        return 0;
 
  fail:
-       kfree(dev1);
-       kfree(dev2);
+       if (dev1 != NULL)
+               kfree(dev1);
+       if (dev2 != NULL)
+               kfree(dev2);
        return err;
 }
 
index b13ce8bc51d2a29a2fde1c291beacc6b20fc84a4..80050f9c18d2e462fc3578aacd6403a78c314f6a 100644 (file)
@@ -50,7 +50,8 @@ static int netback_remove(struct xenbus_device *dev)
        unregister_xenbus_watch(&be->backend_watch);
        if (be->netif)
                netif_disconnect(be->netif);
-       kfree(be->frontpath);
+       if (be->frontpath)
+               kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -269,7 +270,8 @@ static int netback_probe(struct xenbus_device *dev,
  free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       kfree(frontend);
+       if (frontend)
+               kfree(frontend);
        kfree(be);
        return err;
 }
index 6cd026a67818911b6e0b7a09123d7e20dc5e0d6a..e31434ac12f4109db31a38e92deff5ced8334f44 100644 (file)
@@ -1232,7 +1232,8 @@ static int talk_to_backend(struct xenbus_device *dev,
        netif_state = NETIF_STATE_CONNECTED;
 
  out:
-       kfree(backend);
+       if (backend)
+               kfree(backend);
        return err;
 
  abort_transaction:
index 593a2c76098ae1b216358b279a85c5dadfb489b8..1caaca4998a3518c8a924daad2e8e8fc3c7f209c 100644 (file)
@@ -148,7 +148,9 @@ static void inline
 packet_free(struct packet *pak)
 {
        del_singleshot_timer_sync(&pak->processing_timer);
-       kfree(pak->data_buffer);
+       if (pak->data_buffer) {
+               kfree(pak->data_buffer);
+       }
        /*
         * cannot do tpmif_put(pak->tpmif); bad things happen
         * on the last tpmif_put()
index 2bebc07f8163f44af2746f1d4fdeddfa8324becc..4e2a11f8380d6fb7506507dc892c9de90cfae624 100644 (file)
@@ -52,7 +52,8 @@ static int tpmback_remove(struct xenbus_device *dev)
                tpmif_put(be->tpmif);
        }
 
-       kfree(be->frontpath);
+       if (be->frontpath)
+               kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -242,7 +243,8 @@ static int tpmback_probe(struct xenbus_device *dev,
 free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       kfree(frontend);
+       if (frontend)
+               kfree(frontend);
        kfree(be);
        return err;
 }
index 2074a1d8de6aff1fc8f406e10d54d60fa375cc8e..6372382e0991f8451844780121856e6866861e3b 100644 (file)
@@ -363,7 +363,8 @@ static int talk_to_backend(struct xenbus_device *dev,
        }
 
 out:
-       kfree(backend);
+       if (backend)
+               kfree(backend);
        return err;
 
 abort_transaction:
index bd3898bc30fb9b68a935b991c520e52165efd960..043ab73eeb97d69282ccf2c351d3842e11181958 100644 (file)
@@ -781,7 +781,8 @@ static void dispatch_usb_io(usbif_priv_t *up, usbif_request_t *req)
     return;
     
  no_mem:
-    kfree(setup);
+    if ( setup != NULL )
+        kfree(setup);
     make_response(up, req->id, req->operation, -ENOMEM, 0, 0);
     return;
 } 
index 30d4b38bbd60c788de7beed21d4721c340e4c3da..af2d2065dfc7fe5526c816ca218fe26d444c3e8d 100644 (file)
@@ -1720,7 +1720,8 @@ static int __init xhci_hcd_init(void)
        return 0;
 
 up_failed:
-       kfree(errbuf);
+       if (errbuf)
+               kfree(errbuf);
 
 errbuf_failed:
        return retval;